package link.wangkui.lamda;
/**
 * 在jdk1.8里面，不仅可以定义接口，还可以在接口中提供默认的实现
 * @author 王魁
 */
public interface IFormula {
    /**
     * 计算
     * @param a
     * @return
     */
    double calculate(int a);
    /**
     *  在定义的时候；{default 关键字必须}
     *  @param a
     *  @return
     */
    default double sqrt(int a) {
        return Math.sqrt(a);
    }

    public static void main( String[] args )
    {
        IFormula formula = new IFormula() {
            @Override
            public double calculate(int a) {
                return a * a;
            }
        };
        System.out.println(formula.calculate(2));
        System.out.println(formula.sqrt(2));
        // 入参a 和 实现
        //a; a是一个入参名称，可以其他任何名字
        //->a*a； 箭头指向是具体的实现
        //但是，这样其实不太适合加日志了
        IFormula formula1 = b -> b * b;
        System.out.println(formula1.calculate(2));
        System.out.println(formula1.sqrt(2));
    }
}
